Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Aug 28, 2025

This PR adds Aqua.jl tests to provide automated quality assurance for the AbstractPPL.jl package, similar to the implementation in DynamicPPL.jl (issue #758).

What's Added

  • Aqua dependency: Added Aqua v0.8 to test/Project.toml with proper compatibility constraints
  • Aqua test file: Created test/Aqua.jl that runs automated quality assurance tests
  • Test integration: Modified test/runtests.jl to include Aqua tests in the "All" and "Tests" groups

Quality Checks Included

The Aqua tests check for common package quality issues:

  • Undefined exports - Catches when functions are exported but not defined
  • Unbound type parameters - Detects problematic type definitions
  • Project structure consistency - Validates Project.toml files
  • Stale dependencies - Identifies unused dependencies
  • Compatibility bounds - Ensures proper version constraints
  • Piracy detection - Finds improper method definitions
  • Persistent tasks - Checks for lingering background tasks

Note: Ambiguity tests are currently excluded since they primarily catch issues from interactions with third-party packages rather than AbstractPPL itself.

Usage

The Aqua tests run automatically with the test suite:

# Run all tests including Aqua (default)
julia --project -e "using Pkg; Pkg.test()"

# Run only the Tests group (includes Aqua)
GROUP=Tests julia --project -e "using Pkg; Pkg.test()"

# Run only doctests (Aqua tests are excluded from this group)
GROUP=Doctests julia --project -e "using Pkg; Pkg.test()"

This helps prevent quality issues like undefined exports and ensures consistent package maintenance standards across the TuringLang ecosystem.

Fixes #120.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@Copilot Copilot AI assigned Copilot and yebai Aug 28, 2025
Copy link
Contributor Author

Copilot AI commented Aug 28, 2025

@yebai 👋 This repository doesn't have Copilot instructions. With Copilot instructions, I can understand the repository better, work faster and produce higher quality PRs.

I can generate a .github/copilot-instructions.md file for you automatically. Click here to open a pre-filled issue and assign it to me. I'll write the instructions, and then tag you for review.

@Copilot Copilot AI changed the title [WIP] Add Aqua tests Add Aqua tests for automated quality assurance Aug 28, 2025
@Copilot Copilot AI requested a review from yebai August 28, 2025 00:22
Copilot finished work on behalf of yebai August 28, 2025 00:22
Copy link
Contributor

AbstractPPL.jl documentation for PR #130 is available at:
https://TuringLang.github.io/AbstractPPL.jl/previews/PR130/

Copy link

codecov bot commented Aug 28, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.28%. Comparing base (548ce9d) to head (c44ff27).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #130   +/-   ##
=======================================
  Coverage   86.28%   86.28%           
=======================================
  Files           5        5           
  Lines         401      401           
=======================================
  Hits          346      346           
  Misses         55       55           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@coveralls
Copy link

coveralls commented Aug 28, 2025

Pull Request Test Coverage Report for Build 17282963650

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 86.284%

Totals Coverage Status
Change from base Build 17281838159: 0.0%
Covered Lines: 346
Relevant Lines: 401

💛 - Coveralls

test/runtests.jl Outdated
using Test

const GROUP = get(ENV, "GROUP", "All")
const AQUA = get(ENV, "AQUA", "true") == "true"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot, remove the AQUA variable and relevant checks. Always run Aqua.jl in test groups All and Tests.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the AQUA environment variable and conditional checks. Aqua tests now always run in the "All" and "Tests" groups as requested. (c44ff27)

Copy link
Contributor Author

Copilot AI commented Aug 28, 2025

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/repos/FluxML/MacroTools.jl/tarball/1e0228a030642014fe5cfe68c2c0a818f9e3f522
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/GunnarFarneback/RegistryInstances.jl/tarball/ffd19052caf598b8653b99404058fce14828be51
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaArrays/FillArrays.jl/tarball/6a70198746448456524cb442b8af316927ff3e1a
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaArrays/OffsetArrays.jl/tarball/117432e406b5c023f665fa73dc26e79ec3630151
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaArrays/StaticArraysCore.jl/tarball/192954ef1208c7019899fbf8049e717f92959682
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/Expat_jll.jl/tarball/7bb1361afdb33c7f2b085aa49ea8fe1b0fb14e58
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/Git_LFS_jll.jl/tarball/bb8471f313ed941f299aa53d32a94ab3bee08844
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/Git_jll.jl/tarball/cd06e503111a7c5ef1d4a339de6ccf5bd7437b32
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/Libiconv_jll.jl/tarball/be484f5c92fad0bd8acfef35fe017900b0b73809
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/OpenSSH_jll.jl/tarball/cb7acd5d10aff809b4d0191dfe1956c2edf35800
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/OpenSSL_jll.jl/tarball/2ae7d4ddec2e13ad3bddf5c0796f7547cf682391
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/OpenSpecFun_jll.jl/tarball/1346c9208249809840c91b26703912dff463d335
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/Rmath_jll.jl/tarball/58cdd8fb2201a6267e1db87ff148dd6c1dbd8ad8
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCollections/AbstractTrees.jl/tarball/2d9c9a55f9c93e8887ad391fbae72f8ef55e1177
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCollections/DataStructures.jl/tarball/6c72198e6a101cccdd4c9731d3985e904ba26037
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCollections/LeftChildRightSiblingTrees.jl/tarball/95ba48564903b43b2462318aa243ee79d81135ff
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaCollections/OrderedCollections.jl/tarball/05868e21324cede2207c6f0f466b4bfef6d5e7ee
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCollections/SortingAlgorithms.jl/tarball/64d974c2e6fdf07f8155b5b2ca2ffa9069b608d9
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/DataAPI.jl/tarball/abe83f3a2f1b857aac70ef8b269080af17764bbe
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/InvertedIndices.jl/tarball/6da3c4316095de0f5ee2ebd875df8721e7e0bdbe
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/Missings.jl/tarball/ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/Parsers.jl/tarball/7d2f8f21da5db6a806faf7b9b292296da42b2810
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/Tables.jl/tarball/f2c1efbc8f3a609aadf318094f8fc5204bdaf344
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaDocs/ANSIColoredPrinters.jl/tarball/574baf8110975760d391c710b6341da1afa48d8c
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaDocs/DocStringExtensions.jl/tarball/7442a5dfe1ebb773c29cc2962a8980f47221d76c
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaDocs/Documenter.jl/tarball/47ffb8f27ffc01e2e57e7ae5365ae5ceef87b03d
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaDocs/IOCapture.jl/tarball/b6d6bfdd7ce25b0f9b2f6b3dd56b2673a66c8770
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaDocs/MarkdownAST.jl/tarball/465a70f0fc7d443a00dcdc3267a497397b8a3899
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaFolds/InitialValues.jl/tarball/4da0f88e9a39111c2fa3add390ab15f3a44f3ca3
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaFolds/SplittablesBase.jl/tarball/e08a62abc517eb79667d0a29dc08a3b589516bb5
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaFolds2/BangBang.jl/tarball/26f41e1df02c330c4fa1e98d4aa2168fdafc9b1f
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaFolds2/MicroCollections.jl/tarball/44d32db644e84c75dab479f1bc15ee76a1a3618f
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaFolds2/Transducers.jl/tarball/7deeab4ff96b85c5f72c824cae53a1398da3d1cb
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaFunctional/CompositionsBase.jl/tarball/802bb88cd69dfd1509f6670416bd4434015693ad
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaIO/CodecZlib.jl/tarball/962834c22b66e32aa10f7611c08c8ca4e20749a9
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaIO/JSON.jl/tarball/31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaIO/TranscodingStreams.jl/tarball/0c45878dcfdcfa8480052b6ab162cdd138781742
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLang/Compat.jl/tarball/0037835448781bb46feb39866934e243886d756a
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLang/PrecompileTools.jl/tarball/5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLogging/LoggingExtras.jl/tarball/f02b56007b064fbfddb4c9cd60161b6dd0f40df3
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaLogging/ProgressLogging.jl/tarball/d95ed0324b0799843ac6f7a6a85e65fe4e5173f0
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaLogging/TerminalLoggers.jl/tarball/f133fab380933d042f6796eda4e130272ba520ca
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaMath/DensityInterface.jl/tarball/80c3e8639e3353e5d2912fb3a1916b8455e2494b
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaMath/HypergeometricFunctions.jl/tarball/68c173f4f449de5b438ee67ed0c9c748dc31a2ec
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaMath/InverseFunctions.jl/tarball/a779299d77cd080bf77b97535acecd73e1c5e5cb
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaMath/IrrationalConstants.jl/tarball/e2222959fbc6c19554dc15174c81bf7bf3aa691c
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaMath/QuadGK.jl/tarball/9da16da70037ba9d701192e27befedefb91ec284
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaMath/SpecialFunctions.jl/tarball/41852b8679f78c8d8961eeadc8f62cef861a52e3
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaObjects/Accessors.jl/tarball/3b86719127f50670efe356bc11073d84b4ed7a5d
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaObjects/ConstructionBase.jl/tarball/b4b092499347b18a015186eae3042f72267106cb
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/JLLWrappers.jl/tarball/0533e564aae234aff59ab625543145446d8b6ec2
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/Preferences.jl/tarball/0f27480397253da18fe2c12a4ba4eb9eb208bf3d
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/Requires.jl/tarball/62389eeff14780bfe55195b7204c0d8738436d64
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/JuliaStats/Distributions.jl/tarball/3e6d038b77f22791b8e3472b7c633acea1ecac06
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStats/LogExpFunctions.jl/tarball/13ca9e2586b89836fd20cccf56e57e2b9ae7f38f
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStats/PDMats.jl/tarball/f07c06228a1c670ae4c87d1276b92c7c597fdda0
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStats/Rmath.jl/tarball/852bd0f55565a9e973fcfee83a84413270224dc4
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStats/Statistics.jl/tarball/ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStats/StatsAPI.jl/tarball/9d72a13a3f4dd3795a195ac5a44d7d6ff5f552ff
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStats/StatsBase.jl/tarball/2c962245732371acd51700dbb268af311bddd719
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStats/StatsFuns.jl/tarball/8e45cecc66f3b42633b8ce14d431e8e57a3e242e
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaTesting/Aqua.jl/tarball/d57fd255a8932b6509baf43284c416fc44d0b903
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaVersionControl/Git.jl/tarball/824a1890086880696fc908fe12a17bcf61738bd8
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/KristofferC/LazilyInitializedFields.jl/tarball/0f2da712350b020bc3957f269c9caad516383ee0
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/LilithHafner/AliasTables.jl/tarball/9876e1e164b144ca45e9e3198d0b689cadfed9ff
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/LilithHafner/PtrArrays.jl/tarball/1d36ef11a9aaf1e8b74dacc6a731dd1de8fd493d
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/TuringLang/AbstractMCMC.jl/tarball/e4b6a25ba2e033c74ea11720daacafbc2ab50a7e
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/jw3126/ArgCheck.jl/tarball/f9e9a66c9b7be1ad7372bbd9b062d9230c30c5ce
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/jw3126/Setfield.jl/tarball/c5391c6ace3bc430ca630251d02ea9687169ca68
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/queryverse/DataValueInterfaces.jl/tarball/bfc1187b79289637fa0ef6d4436ebdfe6905cbd6
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/queryverse/IteratorInterfaceExtensions.jl/tarball/a3f24677c21f5bbe9d2a714f95dcd58337fb2856
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/queryverse/TableTraits.jl/tarball/c06b2f539df1c6efa794486abfb6ed2022561a39
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/simonster/Reexport.jl/tarball/45e428421666073eab6f2da5c9d310d99bb12f9b
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/timholy/ProgressMeter.jl/tarball/fbb92c6c56b34e1a2c4c36058f68f332bec840e7
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/tkf/Baselet.jl/tarball/aebf55e6d7795e02ca500a689d326ac979aaf89e
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/tkf/ConsoleProgressMonitor.jl/tarball/3ab7b2136722890b9af903859afcf457fa3059e8
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/tkf/DefineSingletons.jl/tarball/0fba8b706d0178b4dc7fd44a96a92382c9065c2c
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • https://api.github.com/repos/tpapp/LogDensityProblems.jl/tarball/4e0128c1590d23a50dcdb106c7e2dbca99df85c0
    • Triggering command: julia --project -e using Pkg; Pkg.test() (http block)
  • pkg.julialang.org
    • Triggering command: julia --project=test -e using Pkg; Pkg.instantiate() (dns block)
    • Triggering command: julia --project -e using Pkg; Pkg.test() (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot finished work on behalf of yebai August 28, 2025 01:21
@Copilot Copilot AI requested a review from yebai August 28, 2025 01:21
@yebai yebai marked this pull request as ready for review August 28, 2025 08:46
@yebai yebai merged commit 8dddcea into main Aug 28, 2025
11 checks passed
@yebai yebai deleted the copilot/fix-120 branch August 28, 2025 08:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Aqua tests

3 participants